The present invention relates to the color imaging arts. It finds particular application in digital color image copiers and will be described with particular reference thereto. It is to be appreciated, however, that the invention is applicable in other digital image processing applications (both color and monochrome) such as digital color scanners, printers, fax machines, plotters and the like, and in other environments and applications.
The generation of color documents can be thought of as a two-step process: first, a color image is generated by scanning an original document with a color image input terminal or scanner or, alternatively, creating a color image on a work station operated in accordance with a color image creation program; and second, printing the color image with a color printer in accordance with the colors defined by the scanner or computer generated image.
In a scanner, a color document is scanned line by line to acquire a full image of the document. The full image is represented as a two-dimensional data set of pixel information. The data set consists of line data in one dimension and column data in the other dimension. Due to the rastering motion of the particular input device in the scanner, a line of data is acquired relatively quickly. In contradistinction, each column of data, which is perpendicular to the line of data, is acquired relatively slowly. Accordingly, the axis of the image or acquired data set that is parallel to each line of data is called the fast-scan direction. Analogously, the axis of the image or acquired data set that is parallel to each column of data is called the slow-scan direction.
Scanner output is commonly transformed to a color space of tristimulus values, i.e., RGB (red-green-blue). Usually, these values are linearly transformed into standard XYZ coordinates-of CIE color space, or a corrected transform of those values. An example of a CIE color space is the luminance-chrominance space termed CIE 1976 L*a*b* (CIELAB), where L* is lightness value, a* is a redness-greenness value, and b* is a yellowness-blueness value. These tristimulus values, which are essentially defined at the user interface, are independent of any particular device. Accordingly, the tristimulus information is referred to as being "device independent".
Printers have an output which can be defined as existing in a color space called CMYK which stands for Cyan, Magenta, Yellow, and Key or black. The CYMK color space is uniquely defined for the printer by its capabilities and colorants. Printers operate by the addition of multiple layers of ink or colorants. The response of a printer tends to be relatively non-linear. These colors are defined for a particular device, and accordingly, reference is made to the information as being "device dependent". While a printer receives information in a device-independent color space, it must convert that information to print in a device-dependent color space, which reflects the gamut or possible range of colors of the printer.
In a color copier having both a scanner and a printer, it is often desirable to electronically rotate an inputted image 90.degree., 180.degree., or 270.degree. before printing.
However, such rotation provides many bandwidth and system resource problems. Further, deciding which color space to rotate in provides a complex array of issues.
In the present invention, it has been found that rotating in L*a*b* color space requires far less memory space and processing time over rotating in RGB or CYMK space. Nonetheless, rotating the L*a*b* data in the hardware of the color imaging device still provides a variety problems, particularly in direct memory access (DMA) based systems. More specifically, each L*a*b* data point (non-subsampled) or pixel uses 8.times.3=24 bits or 3 bytes. This data is written to a page buffer in the DMA system. However, most DMA systems operate on a 32 bit word boundary. Thus, a 24 bit or 3 byte operation crosses over the word boundary. This necessitates a minimum of two address writes to pick up the additional byte. Such a solution is cumbersome and very slow.
The present invention provides a new and improved method and apparatus for rotating a color image in L*a*b* color space which overcomes the above-referenced problems and others.